package fr.auzaiphe.joueur.model;

import java.util.ArrayList;


public class JoueurConnecte
{
	private String nom;
	private String prenom;
	private String password;
	private ArrayList<IndiceJoueur> listeIndiceJoueurConnecte;
	private SousChronoJoueur chronoJoueurConnecte;

	public JoueurConnecte( JoueurModel pModel, int pTempsRestant, String pNom, String pPrenom, String pPassword,
			ArrayList<IndiceJoueur> pIndicesDispos)
	{
		this.nom = pNom;
		this.prenom = pPrenom;
		this.password = pPassword;
		this.listeIndiceJoueurConnecte = new ArrayList<IndiceJoueur>( pIndicesDispos );
		this.chronoJoueurConnecte = new SousChronoJoueur( pTempsRestant , pModel );
		this.chronoJoueurConnecte.start();
	}

	/**
	 * Renvoie l'indice selectionner par le nom
	 * Appeller par le tableau de visualisation des indices.
	 * @param pNomIndice
	 * @return IndiceJoueur - Indice selectionné
	 */
	public IndiceJoueur getIndice(String pNomIndice)
	{
		for ( int i = 0; i < this.listeIndiceJoueurConnecte.size(); i++ )
		{
			if ( this.listeIndiceJoueurConnecte.get(i).getTitre() == pNomIndice )
			{
				return this.listeIndiceJoueurConnecte.get(i);
			}
		}
		return null;
	}

	/**
	 * Supprime tous les indices du joueur avant de
	 * le supprimer
	 */
	public void supprimerTousIndices()
	{
		this.listeIndiceJoueurConnecte.clear();
	}

	public ArrayList<String[]> getIndice()
	{
		ArrayList<String[]> listeRetour = new ArrayList<String[]>();
		ArrayList<IndiceJoueur> listeIndices = this.listeIndiceJoueurConnecte;
		for(IndiceJoueur i : listeIndices)
		{
			String descTmp = i.getContenu().getTexte();
			String[] aAjouter = {
				i.getTitre(),
				(descTmp.length()>15)?descTmp.substring(0, 15):descTmp
			};
			listeRetour.add(aAjouter);
		}
		return listeRetour;
	}

	/*
	 * Getters & Setters
	 */

	/**
	 * @return the listeIndiceJoueurConnecte
	 */
	public ArrayList<IndiceJoueur> getListeIndiceJoueurConnecte()
	{
		return this.listeIndiceJoueurConnecte;
	}

	/**
	 * @param listeIndiceJoueurConnecte the listeIndiceJoueurConnecte to set
	 */
	public void setListeIndiceJoueurConnecte( ArrayList<IndiceJoueur> listeIndiceJoueurConnecte )
	{
		this.listeIndiceJoueurConnecte = listeIndiceJoueurConnecte;
	}

	/**
	 * @return le chrono du joueur
	 */
	public SousChronoJoueur getChronoJoueurConnecte()
	{
		return this.chronoJoueurConnecte;
	}

	/**
	 * @return the nom
	 */
	public String getNom()
	{
		return this.nom;
	}

	/**
	 * @return the prenom
	 */
	public String getPassword()
	{
		return this.password;
	}

	/**
	 * @return the prenom
	 */
	public String getPrenom()
	{
		return this.prenom;
	}
}
